/*
 * @Description: 购物车仓库
 * @Author: kangjie
 * @Date: 2021-12-28 19:21:29
 * @LastEditors: kangjie
 * @LastEditTime: 2021-12-28 20:12:20
 */


// import { post, post_json } from '@/http/axios'
import _ from 'lodash'
export default {
  namespaced: true,
  state: {
    // 声明一个购物车
    orderLines:new Map()
    // 使用构造函数声明map集合
    // let map=new Map();
    // 获取map集合属性名
    // map.keys();
    
    // 获取map集合属性值
    // map.values();
    // 给map集合设置属性 key-value
    // map.set(key,value);
    // 清除一个属性
    // map.clear()
  },
  getters:{
    // 计算订单总金额
    total(state){
        // 初始化价格
        let result=0;
        // 相当于循环遍历购物车里的每一条订单
        for(let orderLine of state.orderLines.values()){
            result+=orderLine.price * orderLine.number
        }
        return result;
    }
  },
  mutations: {
    // 声明添加购物车得方法
    addShopCar(state,orderLine){
        // 相当于往购物车里添加订单
        state.orderLines.set(orderLine.productId,orderLine);
        // vue监听不到购物车数据发生变化 
        state.orderLines=_.clone(state.orderLines)
    },
    // 清空购物车
    clearShopCar(state){
        // 清空购物车里面的订单
        state.orderLines.clear();
        // 监听购物车变化
        state.orderLines=_.clone(state.orderLines)
    }
  },
  actions: {
   
  }
}
